10
תגובות
יש לי INPUT אחד ובו אני רוצה שהמשתמש יכתוב או את מס' הטלפון שלו או את כתובת המייל שלו לצורך קלות השימוש והנוחיות. אני גם רוצה לוודא שהוא הכניס מס' טלפון תקין / כתובת דוא"ל תקינה. איך אני בודק אם הוזן מספר טלפון או כתובת דוא"ל?

10 תשובות

avatar ענה shlomo120 ב 14 ליולי 2013 #

תעשה 2 תיבות טקסט , ובעזרת JS תראה שלפחות לשדה אחד נכנס מידע ואז תעביר אותו בפילטר בהתאם לשדה - מספרים\אימייל

avatar ענה dinamit ב 14 ליולי 2013 #

shlomo120@ אני מעוניין בשדה אחד בלבד!

avatar ענה matan sh ב 14 ליולי 2013 #

יש ב-JS ביטויים רגולריים. אתה יכול לבדוק בדיקה ראשונה אם הכל מספרים או לא. ובדיקה שניה אם זה תקין

avatar ענה mtndiv ב 14 ליולי 2013 #

למה ב-javascript ? כל כך פשוט לעקוף את זה ...
תעשה ב-php בדיקה אם המחרוזת היא אימייל תקין לפי זה (לחץ כאן), אם המחרוזת היא לא אימייל אז תבדוק אם היא מספר פלאפון ע"י regex(תגגל על זה), אם היא לא מספר פלאפון ולא אימייל אז פשוט תציג תדפיס שגיאה בטופס..

avatar ענה matan sh ב 14 ליולי 2013 #

אפשר גם וגם... אבל באמת כמו שאמר מעליי עדיף ב-PHP

avatar ענה ldbrgr ב 15 ליולי 2013 #

/**
* Checks if the giving var is valid email address
*
* @param mixed $variable
* @return bool
*/

function is_email($variable)
{
 return filter_var($variable, FILTER_VALIDATE_EMAIL) !== false;
}

/**
* Checks if the giving var is valid phone number
*
* @see http://www.php.net/manual/en/function.preg-match.php#90503
* @param string $subject
* @return bool
*/

function is_phone_number($subject)
{
 $pattern = '/^(?:1(?:[. -])?)?(?:\((?=\d{3}\)))?([2-9]\d{2})'
           .'(?:(?<=\(\d{3})\))? ?(?:(?<=\d{3})[.-])?([2-9]\d{2})'
           .'[. -]?(\d{4})(?: (?i:ext)\.? ?(\d{1,5}))?$/'; // By corey [works at] effim [delete] .com  

 return preg_match($pattern, $subject) !== false;
}
$input = '%watever%';
if(is_email($input) || is_phone_number($input)) {
 print 'all good';
} else {
 print '$input must be Email address or Phone number';
}

avatar ענה mmm ב 17 ליולי 2013 #

JS או PHP זה בכלל לא קשור לעדיפות, כדאי ומומלץ לעשות בדיקות בשניהם.
בדיקה על ידי JS היא עבור מתן חיווי למשתמש, כך שיבחין שיש לו טעות עוד לפני השליחה לשרת.
בדיקה בPHP היא הבדיקה הנחוצה עבור הצרכים שלך.

avatar ענה yonikal56 ב 18 ליולי 2013 #

אני השתמשתי בזה ככה זה אמור לבדוק מהמסד נכון? להתחברות? אם כן אז אתה צריך לצור שתי שאילתות של להוציא מהמסד כשהמספר פלאפון הוא השדה ואז בשאילתה השנייה אותו דבר רק על מייל ואז על כל שאילתה יוצר num_rows ובודק אם זה שווה ל1 אז...
אם השני שווה לאחד אז...
מקווה שעזרתי :)

avatar ענה dinamit ב 18 ליולי 2013 #

יש לי עוד שאלה אחת.
איך אני בודק תקינות מספר טלפון?
מה ש-@ldbrgr הביא זה לא מתאים לתבנית מספר הטלפון/הנייד בארץ.
חיפשתי בגוגל אך לא מצאתי פתרון מתאים.
איך אני מייצר קוד REGEX שפשוט בודק אם המחרוזת מורכבת מספרות ו/או מקף(ים) ו/או סוגריים ו/או '+'.

avatar ענה yonikal56 ב 18 ליולי 2013 #

אתה צריך לבדוק אם זה 10 תווים או 9 תווים או 11 תווים:
למשל:
9 תווים-015357546\
10 תווים(2 אופציות)-0524675646 או 01-3553812
11תווים - 052-3457535
מספרים מחורבשים אבל זה מה שיכול להיות בארץ.